<?php
namespace NewCome\Controller;

use Tsy\Library\Controller;
/**
 * 用户
 * 
 * @package NewCome\Object
 */
class UserController extends Controller
{
    /**

     * 用户编号 UID int(11) 自增 主键 必填  
     * 账户 Account char(50)   必填  
     * 密码 PWD char(50)   必填  
     * 电子邮箱 Email char(50)   必填  
     * 角色 Role tinyint(1)   必填  
     * 注册时间 CTime int   必填  
     */
    /**
     * @var string
     */
    /**
     * 权限检查
     * @param $Module
     * @param $Class
     * @param $Action
     * @param string $Layer
     * @param bool $UID
     */
    function check($Module,$Class,$Action,$Layer='Controller',$UID=''){
        return $this->Object->check($Module,$Class,$Action,$Layer,$UID);
    }
    
    function loginByOpenID($OpenID){
        return $this->Object->loginByOpenID($OpenID);
    }
    /**
     * 按条件保存修改
     * @param array $W 条件限定
     * @param array $Data 保存数据
     * @return array|bool|string
     */
    function saveW($W,$Data){
        return $this->Object->saveW($W,$Data);
    }
    /**
     * 用户注册
     * @param string $Account 注册帐号
     * @param string $PWD 注册密码
     * @param array $Properties 其他属性
     * @return UserObject|bool
     */
    function reg($Account,$PWD,$Properties=[]){
        return $this->Object->reg($Account,$PWD,$Properties);
    }
    /**
     * 用户登录
     * @param string $Account 账户名
     * @param string $PWD 账户密码
     * @return UserObject
     */
    function login($Account,$PWD){
        return $this->Object->login($Account,$PWD);
    }
    /**
     * 退出登录
     */
    function logout(){
        return $this->Object->logout();
    }
    /**
     * 查找我的账户
     * @param string $Account 账户名称
     * @return array {'Email':"","Phone":"",'Account':"","UID":1}
     */
    function findAccount($Account){
        return $this->Object->findAccount($Account);
    }
    /**
     * 重置密码
     * @param int $UID 用户编号
     * @param string $PWD 新密码
     * @param string $Code 验证码或旧密码 当用户权限为管理员时不需要Code参数，如果不是则需要提供Code验证码或者旧密码做验证
     */
    function resetPWD($UID,$PWD,$Code='',$Account){
        return $this->Object->resetPWD($UID,$PWD,$Code,$Account);
    }
    /**
     * 检查账户是否存在
     * @param string $Account 账户名称
     * @return bool 存在true,不存在false
     */
    function checkAccount($Account){
        return $this->Object->checkAccount($Account);
    }
    /**
     * 自动登录
     * @param string $SID 自动登录的验证字符
     * @return UserObject|bool 成功返回用户对象，否则返回false
     */
    function reLogin($SID=''){
        return $this->Object->reLogin($SID);
    }
    
    function sendVerify($UID,$Account,$Type){
        return $this->Object->sendVerify($UID,$Account,$Type);
    }
    
    function loginByCode($Account,$Code){
        return $this->Object->loginByCode($Account,$Code);
    }
}